package middleware

import (
	"openapi.itspire.cn/common/global"
	"openapi.itspire.cn/model"
	"openapi.itspire.cn/utils"
	"github.com/gin-gonic/gin"
	"strconv"
	"time"
)

func Global() gin.HandlerFunc {
	return func(c *gin.Context) {
		// 设置接口请求开始时间
		global.RequestTime = time.Now()
		// 设置请求ID
		global.RequestID = utils.GetMicroTime()
		// 设置请求参数
		global.RequestData = utils.JsonParams(c)
		// 设置客户端ip
		global.Ip = c.ClientIP()
		// 设置数据库配置参数
		var config model.Config
		global.Config = config.GetConfigs()
		// 友链最大数
		global.LinkMax, _ = strconv.Atoi(global.Config["link_max"])
		// 默认分页数
		global.PageSize, _ = strconv.Atoi(global.Config["page_size"])
		// 最新文章取值数
		global.ArticleNew, _ = strconv.Atoi(global.Config["article_new_max"])
		// 最热文章取值数
		global.ArticleHot, _ = strconv.Atoi(global.Config["article_hot_max"])
		// 标签最大数
		global.LabelMax, _ = strconv.Atoi(global.Config["label_max"])

		c.Next()
	}
}
